package com.seguriapp.common.gwt.client;

import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.gwt.user.client.rpc.AsyncCallback;

import net.customware.gwt.dispatch.shared.Result;

public abstract class SeguriAppCallback<T extends Result> implements AsyncCallback<T> {

  private static final Logger LOG = Logger.getLogger(SeguriAppCallback.class.getName());

  private static final String SECUENCIA_LOGIN = "{dispatcher:login}";

  @SuppressWarnings("unused")
  private static final String SECUENCIA_ACCESO_DENEGADO = "{dispatcher:denied}";

  @SuppressWarnings("unused")
  private static final String SECUENCIA_ERROR = "{dispatcher:error}";

  @SuppressWarnings("unused")
  private static final String SECUENCIA_ERROR_404 = "{dispatcher:error404}";

  private static final String SECUENCIA_EXPIRADO = "{dispatcher:expired}";

  /**
   * Llamado cuando ocurre un error en la llamada AJAX al servidor.
   */
  public void onFailure(Throwable e) {
    LOG.log(Level.SEVERE, "Error llamando a servicio remoto", e);
    if (e.getMessage() != null && e.getMessage().contains(SECUENCIA_LOGIN)) {
//      BpiUtilCliente.navegarExpired();
    } else if (e.getMessage() != null && e.getMessage().contains(SECUENCIA_EXPIRADO)) {
//      BpiUtilCliente.navegarExpired();
    } else {
//      BpiUtilCliente.navegarError();
    }
  }
}
